home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / bbs / mfm_111b.zip / VIEWFILE.PAS < prev   
Pascal/Delphi Source File  |  1992-01-07  |  5KB  |  143 lines

  1. {========================================================================}
  2. Procedure ViewFile;
  3.   Var
  4.     Ext : String[3];
  5.     ReturnCode : Integer;
  6.     PathToUtility : PathStr;
  7.   Begin
  8.     If ReDirectTo = Console Then
  9.     Begin
  10.       If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
  11.       Begin
  12.         If Pos('.',CurrentEntry^.FileName) > 0 Then
  13.         Begin
  14.           Ext := Copy(CurrentEntry^.FileName,Pos('.',CurrentEntry^.FileName)+1,
  15.                Length(CurrentEntry^.FileName)-Pos('.',CurrentEntry^.FileName));
  16.           AnsiClearScreen;
  17.           SetMemTop(HeapPtr);
  18.           SwapVectors;
  19.           If Pos(Ext,'ARCARJLZHPAKZIPZOO') In [1,4,7,10,13,16] Then
  20.           Begin
  21.             Write('Loading SHEZ...');
  22.             PathToUtility := FSearch('SHEZ.EXE',GetEnv('PATH'));
  23.             Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
  24.           End
  25.           Else
  26.           Begin
  27.             Write('Loading LIST...');
  28.             PathToUtility := FSearch('LIST.COM',GetEnv('PATH'));
  29.             If PathToUtility = '' Then
  30.             Begin
  31.               PathToUtility := FSearch('L.COM',GetEnv('PATH'));
  32.             End;
  33.             Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
  34.           End;
  35.           SwapVectors;
  36.           SetMemTop(HeapEnd);
  37.           SetupScreen; DisplayScreen;
  38.         End;
  39.       End;
  40.     End;
  41.   End;
  42. {========================================================================}
  43. Procedure CallShez;
  44.   Var
  45.     ReturnCode : Integer;
  46.     PathToUtility : PathStr;
  47.   Begin
  48.     If ReDirectTo = Console Then
  49.     Begin
  50.       If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
  51.       Begin
  52.         If Length(CurrentEntry^.FileName) > 0 Then
  53.         Begin
  54.           AnsiClearScreen;
  55.           SetMemTop(HeapPtr);
  56.           Write('Loading SHEZ...');
  57.           SwapVectors;
  58.           PathToUtility := FSearch('SHEZ.EXE',GetEnv('PATH'));
  59.           If Pos('.',CurrentEntry^.FileName) = 0 Then
  60.           Begin
  61.             Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName+'.*');
  62.           End
  63.           Else
  64.           Begin
  65.             Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
  66.           End;
  67.           SwapVectors;
  68.           SetMemTop(HeapEnd);
  69.           SetupScreen; DisplayScreen;
  70.         End;
  71.       End;
  72.     End;
  73.   End;
  74. {========================================================================}
  75. Procedure CallList;
  76.   Var
  77.     ReturnCode : Integer;
  78.     PathToUtility : PathStr;
  79.   Begin
  80.     If ReDirectTo = Console Then
  81.     Begin
  82.       If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
  83.       Begin
  84.         If Length(CurrentEntry^.FileName) > 0 Then
  85.         Begin
  86.           AnsiClearScreen;
  87.           SetMemTop(HeapPtr);
  88.           Write('Loading LIST...');
  89.           SwapVectors;
  90.           PathToUtility := FSearch('LIST.COM',GetEnv('PATH'));
  91.           If PathToUtility = '' Then
  92.           Begin
  93.             PathToUtility := FSearch('L.COM',GetEnv('PATH'));
  94.           End;
  95.           Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
  96.           SwapVectors;
  97.           SetMemTop(HeapEnd);
  98.           SetupScreen; DisplayScreen;
  99.         End;
  100.       End;
  101.     End;
  102.   End;
  103. {========================================================================}
  104. Procedure CallVpic;
  105.   Var
  106.     ReturnCode : Integer;
  107.     PathToUtility : PathStr;
  108.   Begin
  109.     If ReDirectTo = Console Then
  110.     Begin
  111.       If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
  112.       Begin
  113.         If Length(CurrentEntry^.FileName) > 0 Then
  114.         Begin
  115.           AnsiClearScreen;
  116.           SetMemTop(HeapPtr);
  117.           Write('Loading VPIC...');
  118.           SwapVectors;
  119.           PathToUtility := FSearch('VPIC.EXE',GetEnv('PATH'));
  120.           Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
  121.           SwapVectors;
  122.           SetMemTop(HeapEnd);
  123.           SetupScreen; DisplayScreen;
  124.         End;
  125.       End;
  126.     End;
  127.   End;
  128. {========================================================================}
  129. Procedure ShellToDos;
  130.   Var
  131.     ReturnCode : Integer;
  132.   Begin
  133.     AnsiClearScreen;
  134.     SetMemTop(HeapPtr);
  135.     WriteLn('Type EXIT to return...');
  136.     SwapVectors;
  137.     Exec(GetEnv('COMSPEC'), '');
  138.     SwapVectors;
  139.     SetMemTop(HeapEnd);
  140.     SetupScreen; DisplayScreen;
  141.   End;
  142. {========================================================================}
  143.